Sektion: Decoupled
Diese Sektion definiert sogenannte „Decoupled-Module“. Dies sind Module, die die Eigenschaften von Toplevel-Modulen haben, jedoch auch als Submodul an speziellen Slots (Type:= DECOUPLED) anderer Module eingefügt werden können. Module können nicht gleichzeitig „Toplevel“ und „Decoupled“ sein.
„Decoupled-Module“ werden mit Hilfe der Sektion Decoupled in der Moduldeklaration erzeugt. Die Sektion Decoupled ist fast identisch zur Sektion Toplevel, wobei nur eine dieser beiden Sektionen in einer Moduldeklaration erlaubt ist.
SEC Decoupled //optional: yes, modifier: [UPDATE]
GVL_Name := <GVL name>; //optional: yes, type: literal
Default_Application := <default application>; //optional: yes, type: QID
Default_POUPool := <TRUE/FALSE>; //optional: yes, type: BoolFlag
Pragmas := [<pragma1>, <pragma2>,...]; //optional: yes, type: Pragmalist
Toplevel_Insertable := <TRUE/FALSE>; //optional: yes, type: BoolFlag
SEC Standard_Task : <task name> //optional: yes, modifier: [HIDE,UPDATE]
Name := <task name>; //optional: no, type: ID
Desc := <task description>; //optional: no, type: Text)
Flags:= <flag>; //optional: no, type: StdTaskFlags)
END_SEC
SEC Custom_Task : <task name> //optional: yes, modifier: [UPDATE]
Priority := <priority>; //optional: no, type: Subrange(0 .. 31)
Interval := <interval>; //optional: no, type: TimeLiteral)
Flags:= <flag>; //optional: no, type: CustomTaskFlags)
END_SEC
END_SECDetails über die Syntax der Definitionstypen sind im Kapitel Moduldeklaration beschrieben.
Spezifikation: Die Spezifikation der Sektion Decoupled entspricht der Beschreibung der Sektion Toplevel. Zusätzlich kann folgender Parameter definiert werden:
Toplevel_Insertabledefiniert, ob ein „Decoupled-Submodul“ auch toplevel, also wie ein Toplevel-Modul, eingefügt werden kann.
Hinweis: Ein "Decoupled“-Modul sollte einen ihm entsprechenden Proxy-Vertreter definieren und implementieren. Der Proxy sollte das selbe Interface wie das „Decoupled“-Modul selbst implementieren. Wenn die Vater-Modulinstanz unterhalb einer anderen Steuerung liegt wie die „Decoupled“-Modulinstanz, kann die „Decoupled“-Modulinstanz dennoch über ihren Proxy-Vertreter in diesen Slot eingefügt werden kann.